/**
 * <p>Title: UserRestImpl</p>
 * <p>Description: UserRest的实现类</p>
 * <p>Copyright: Shanghai Batchsight Pharmaceutical Technologies, Inc. Copyright(c) 2016</p>
 * @author Huang Zhongwei & Chen Wei
 * @version 1.0
 * <pre>Histroy:
 *       2016-11-23  Huang Zhongwei  Create
 *</pre>
*/
package cn.jhg.account.rest;

import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;

import cn.jhg.account.entity.User;
import cn.jhg.account.entity.UserGroup;
import cn.jhg.account.entity.UserGroupStatus;
import cn.jhg.account.service.UserGroupSvc;
import cn.jhg.account.util.ServiceResult;

@Component
public class UserGroupRestImpl implements UserGroupRest{

	@Resource 
	private UserGroupSvc userGroupSvc;
	/**
     * 查找用户组
     * @param code		用户组编号（等于空表示全部）
     * @param name		用户组名（等于空表示全部）
     * @param valid	用户组失效  Valid, Invalid, 空（等于空表示全部）
     * @return
     */
	@Override
	public ServiceResult<List<UserGroup>> findUserGroups(String code, String name, String valid) {
		// TODO Auto-generated method stub
		UserGroupStatus[] status=new UserGroupStatus[]{};
		if("Valid".equals(valid)){
			status=new UserGroupStatus[]{UserGroupStatus.Valid};
		}else if("Invalid".equals(valid)){
			status=new UserGroupStatus[]{UserGroupStatus.Invalid};
		}else{
			
			//do nothing
		}
		ServiceResult<List<UserGroup>> result=userGroupSvc.findUserGroups(code, name, status, 1);
		return result;
	}
	 /**
     * 添加用户组
     * @param code		用户组编号
     * @param name      用户组名
     * @param description     用户组说明
     * @param status 	用户组状态(Valid：有效,Invalid：失效)
     * @return			添加用户组ID
     */
	@Override
	public ServiceResult<Integer> addUserGroup(int sdid,String code, String name, String description) {
		UserGroup userGroup=new UserGroup();
		System.out.println(code);
		System.out.println(name);
		System.out.println(description);
		userGroup.setCode(code);
		userGroup.setName(name);
		userGroup.setDescription(description);
		ServiceResult<Integer> result=userGroupSvc.addUserGroup(userGroup, sdid, 1);
		System.out.println(result);
		return result;
	}
	/**
     * 修改用户组
     * @Param id		用户组ID
     * @param code		用户组编号
     * @param name      用户组名
     * @param description     用户组说明
     * @param status 	用户组状态(VALID：有效,INVALID：失效)
     * @return			errorCode
     */
	@Override
	public ServiceResult<Integer> updateUserGroup(int sdid,int ugid, String code, String name, String description) {
		// TODO Auto-generated method stub
		UserGroup userGroup=new UserGroup();
		userGroup.setId(ugid);
		userGroup.setCode(code);
		userGroup.setName(name);
		userGroup.setDescription(description);
		ServiceResult<Integer> result=userGroupSvc.updateUserGroup(userGroup,sdid, 1);
		return result;
	}
	/**
     * 失效用户组
     * @Param id		用户组ID
     * @retrun ErrorCode
     */
	@Override
	public ServiceResult<Integer> invalidUserGroup(int sdid,int ugid) {
		ServiceResult<Integer> result=userGroupSvc.invalidateUserGroup(ugid, sdid, 1);
		return result;
	}
	/**
     * 查找用户组成员
     * @Param id		用户组ID
     * @retrun ErrorCode
     */
	@Override
	public ServiceResult<List<User>> findUserGroupUsers(int id) {
		// TODO Auto-generated method stub
		ServiceResult<List<User>> result=userGroupSvc.findUsers(id, 0);
		return result;
	}
	
	/**
     * 添加用户组成员
     * @Param id		用户组ID
     * @retrun ErrorCode
     */
	
	@Override
	public ServiceResult<Integer> addMember(int id, List<Integer> uids, int sdid) {
		// TODO Auto-generated method stub
		System.out.println(uids);
		ServiceResult<Integer> result=userGroupSvc.addMember(id, uids, sdid,1);
		return result;
	}
	
	/**
     * 删除用户组成员
     * @Param id		用户组ID
     * @retrun ErrorCode
     */
	@Override
	public ServiceResult<Integer> deleteMember(int id, List<Integer> uids, int sdid) {
		// TODO Auto-generated method stub
		ServiceResult<Integer> result=userGroupSvc.deleteMember(id, uids, sdid,1);
		return result;
	}

}
